<?xml version="1.0" encoding="UTF-8"?>
<html>
    <head>
        <link type="text/css" rel="stylesheet" href="./css/template.css" />
        <link type="text/css" rel="stylesheet" href="./css/SyntaxHighlighter.css" />
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>Eclipse Europa : Callisto's successor</title>
        <script language="javascript" src="./js/shInit.js" />
        <script language="javascript" src="./js/shCore.js" />
        <script language="javascript" src="./js/shBrushCpp.js" />
        <script language="javascript" src="./js/shBrushCSharp.js" />
        <script language="javascript" src="./js/shBrushCss.js" />
        <script language="javascript" src="./js/shBrushDelphi.js" />
        <script language="javascript" src="./js/shBrushJava.js" />
        <script language="javascript" src="./js/shBrushJScript.js" />
        <script language="javascript" src="./js/shBrushPhp.js" />
        <script language="javascript" src="./js/shBrushPython.js" />
        <script language="javascript" src="./js/shBrushRuby.js" />
        <script language="javascript" src="./js/shBrushSql.js" />
        <script language="javascript" src="./js/shBrushVb.js" />
        <script language="javascript" src="./js/shBrushXml.js" />
        <keywords>Eclipse Europa,WTP,JPA</keywords>
        <author>Maxime Vialette</author>
    </head>
    <body>
        <div class="chapter">
            <h2>Eclipse Europa : Callisto's successor</h2>
            <p>After Eclipse Callisto (Eclipse 3.2) the Eclipse foundation now releases it's latest version named Europe (Eclipse 3.3) bringing the number of shipped projects from 10 to 21. Those who dislike "distributions" need not worry as the Eclipse foundation puts it:</p>
            <div class="subChapter">
                "While Europa is about the simultaneous release of twenty one projects, it is not a unification of the projects - each project remains a separate open source project operating with its own project leadership, its own commiters, and its own project plan."
                <div class="quote_author">Eclipse Foundation</div>
            </div>
            <p>
                In the
                <a href="http://www.eclipse.org/europa/" target="_blank">Download section of the Eclipse site</a> we have had the choice of these different versions of Eclipse since the 29th of June:
            </p>
            <ul>
                <li>Developers: for Java SE developers</li>
                <li>Java EE Developers: for Java EE developers</li>
                <li>C/C++ Developers: for C and C++ developers/li>
                <li>RCP / Plugin developers: for developers using Eclipse as a base platform for their RCP applications</li>
                <li>Customize Europe: For developers wishing to create their own version of Eclipse by adding plugins with the update manager.</li>
            </ul>
            <p>Eclipse Europa offers complete support for Java 6 and ships with different plugins and new functionalities. In this article we will use the "Java EE developers" version of eclipse and develop a project based on EJB 3 to identify the real additions in this new version. Here is the new welcome screen:</p>
            <img src="" alt="Welcome screen" height="100%" width="100%" />
            <p>In this article we will develop a project with the flagship JavaEE technologies: EJB3 &amp; JSF.</p>
        </div>
        <div class="chapter">
            <h2>Example Project: EJB3</h2>
            <p>Very often in tutorials we can find a UML model of the worker classes whereas in reality it's relatively rare to start a project with no initial base.</p>
            <p>Let us therefore construct an application from the physical model of the following data:</p>
            <img src="./images/Europa_model_uml.png" alt="Model_uml" height="100%" width="100%" />
            <p>The diagram was created by the Clay Database Modeling plugin that allows for retro conception to quickly visualise a database's structure</p>
            <p>The Data Tools Platform (DPT) 1.5 brings together tools providing an easy access to data, the "Database Development" perspective and the "Data Source Explorer" views give access to a database and allow you to execute SQL commands on it. For a developer having an SQL client integrated into their IDE is a significant boon, the first operation to do will therefore be to explore the model and visualise the data:</p>
            <img src="" alt="Data Tools Platform" height="100%" width="100%" />
            <p>In this example we're starting from a pre-existing database model and will use the bottom-up approach. To do this we will use the new Web Tools Platform plugin (WTP) 2.0. WTP is the must have plugin for developing Web &amp; Java EE applications with Eclipse. The assistants and graphical editors supporting multiple standards  allow for considerable speed ups. What's more, EJB3 support (with the Dali project), Java Persistence API (JPA), JSF &amp; Ajax make it essential for Java EE developers.</p>
            <p>Let's make a "JPA Project" that you'll find in the "JPA" category, it's role will be to first hold our Entity Beans. These Entities will be generated from our data model with the pictured "JPA tools" contextual menu:</p>
            <img src="" alt="JPA Tools" height="100%" width="100%" />
            <p>The code generation isn't a big revolution but there are some very nice little additions like the following assistant that lets you choose the name of the class to be mapped to the table:</p>
            <img src="" alt="table name assistant" height="100%" width="100%" />
            <p>A common practice in database design is to not call a table "user", this is why in the above assistant the table named "xuser" is attached to the Java class name "User". The Dali plugin goes much further than Entity Bean generation however, it's above all the editing of POJO (plain old Java objects) annotations that is made easier thanks to the "JPA Details" editor and view:</p>
            <img src="" alt="JPA Details" height="100%" width="100%" />
            <p>Here is an extract of the code generated and mapped to the "User" Entity Bean:</p>
            <textarea name="code" class="java">package com.labosun.stockmanager.entity;
				...
				@Entity
				@Table(name="xuser", schema = "database")
				public class User implements Serializable {
				@Id
				private int id;
				private String password;
				private Date birthdate;
				private String firstname;
				private String login;
				@Column(name="address_fk")
				private int addressFk;
				private String sex;
				...
				public int getId() {
				return this.id;
				}
				public void setId(int id) {
				this.id = id;
				}
				public int getAddressFk() {
				return this.addressFk;
				}
				public void setAddressFk(int addressFk) {
				this.addressFk = addressFk;
				}
				...
				public String getLastname() {
				return this.lastname;
				}
				public void setLastname(String lastname) {
				this.lastname = lastname;
				}
				}</textarea>
            <p>Once this data access layer has been developed we can validate this task in Eclipse. Indeed, we've known for a long time that Eclipse was more than just and IDE, with the Mylyn plugin version 2.0 it can also be a task manager. This plugin let's you list tasks, bugs &amp; project planning. For task definition a remote reference can be defined so that all the members of the team can access it and work on the waiting tasks. You can also plan you bug corrections by connecting directly to the company's bugzilla or other remote or local bug tracking system. To do this a new "Planning" perspective lets you create new tasks and plan them. As you can see on the following screen we can specify the task's details, importance, state, start date, duration, deadline... </p>
            <img src="" alt="task details" height="100%" width="100%" />
            <p>Here is an example of a link between MyLyn and Bugzilla (the access/addition of files relating to a bug and the bug's description is much easier). It is therefore very easy to plan the correction of a bug list. Notifications for planned tasks appear in the bottom right corner of the screen so you don't "forget" to work on a bug. This task manager integrated with Eclipse allows you to better use your time and better integrate your work with a team.</p>
            <img src="" alt="task planning" height="100%" width="100%" />
        </div>
        <div class="chapter">
            <h2>New features of Eclipse 3.3</h2>
            <p>Let's now look at the new features of the editor itself. It's shortcuts and new functionalities. Some of the new additions are major, others are less visible but still just as awaited by the "Eclipse addicts".</p>
            <p>Probably the most noticeable addition is the new "Ctrl + 3" shortcut that gives access to Eclipse's functionalities without using a menu. A pity for those who learnt by heart the full path of each of Eclipse's elements, they can't compete with the speed of this new quick search. You have but to type the name of a command, menu, view, perspective, etc to cut down the possible choices. You therefore need know neither the full name or location of the desired element. Even better, the menu remembers the last searched elements, here's an example of the new menu in use: </p>
            <img src="" alt="new shortcut: ctrl + 3" height="100%" width="100%" />
            <p>Good documentation for a project is a sign of a certain quality and often helps it's success. With spell checking (US or UK English) the quality of this documentation should be increased by reducing the amount of mistakes that can often slip in. It's also possible to link this new functionality to new dictionaries, we can expect dictionaries in other languages to appear as well as specialised vocabulary dictionaries such as telecom, finance, etc. It's very easy to create one's own dictionary simple by writing the words in a text file, one by line. The use of a shortcut "Ctrl + 1" gives access to the Quick Fix tool, known from Eclipse as a code correction tool. With spell checking the proposed changed will be spelling changes.</p>
            <img src="" alt="Quick Fix" height="100%" width="100%" />
            <p>Many other evolutions appear in this new version of Eclipse. "Undo" for example has been improved, now restoring deleted files. The file comparison tool has also been improved, the drag and drop between different editors, the ability to select an entire line in the editor with a triple click, windows Vista support (SWT now based upon WPF). The code cleanup tool can be launched automatically every time you save a file, it can reorganise imports, correct code indentation, add missing annotations, delete useless cast operations. Copy/pasting code from an external source now generated the necessary resources (class and package).</p>
        </div>
        <div class="chapter">
            <h2>Example project (continues) : JSF</h2>
            <p>Let's return to our example project. After developing the JPA part we'll add a second application based on Java Server Faces. Let us therefore create a simple "Dynamic web project" to which we'll add the JSP pages of the site. We'll start by creating the login page with a WYSIWYG editor made up of multiple zones (the graphical components palette, the result and the code): </p>
            <img src="" alt="WYSIWYG" height="100%" width="100%" />
            <p>More than just a simple WYSIWYG editor, WTP also includes a "faces-config.xml" configuration file editor with many tabs of which "Navigation rule" that tersely shows the behaviour of the web application.</p>
            <img src="" alt="faces-config.xml" height="100%" width="100%" />
            <p>This "faces-config.xml" file editor allows a much easier configuration of the application: bundled resources, validators, managed beans, etc. WTP therefore has an important place as a JavaEE plugin, whether or not you're using JSF.</p>
        </div>
        <div class="chapter">
            <h2>Eclipse Europe plugins:</h2>
            <p>In alphabetic order here are the plugins integrated in Eclipse Europa: </p>
            <ul>
                <li>AspectJ Development Tools (AJDT) 1.5</li>
                <li>Business Intelligence and Reporting Tools (BIRT) 2.2.0</li>
                <li>Buckminster 0.1.0</li>
                <li>C/C++ Development Tools (CDT) 4.0</li>
                <li>Data Tools Platform (DTP) 1.5</li>
                <li>Device Software Development Platform - Device Debugging
					(DSDP.DD) 0.9</li>
                <li>Device Software Development Platform - Target Management
					(DSDP.TM) 2.0</li>
                <li>Dynamic Languages Toolkit (DLTK) 1.0</li>
                <li>Dash (Eclipse Monkey) 1.0</li>
                <li>Eclipse Communication Framework (ECF) 1.0.0</li>
                <li>Eclipse Platform, JDT, PDE and Equinox 3.3</li>
                <li>Eclipse Modeling Framework (EMF) 2.3</li>
                <li>Eclipse Modeling Framework Technology (EMFT) - Query,
					Transaction, Validation (MQ, MT, VF) 1.1</li>
                <li>Graphical Editing Framework (GEF) 3.3</li>
                <li>Graphical Modeling Framework (GMF) 2.0</li>
                <li>Model Development Tools (MDT) 1.0</li>
                <li>Model to Text (M2T) – JET 0.8</li>
                <li>MyLyn 2.0</li>
                <li>SOA Tools Platform (STP) 0.6</li>
                <li>Test and Performance Tools Platform (TPTP) 4.4</li>
                <li>Web Tools Platform (WTP) 2.0</li>
            </ul>
            <p>
				You can find details of each of these plugins
                <a href="http://www.eclipse.org/europa/projects.php" target="_blank">on the Eclipse website.</a>
                . To download this new version of Eclipse you can also 
                <a href="http://www.eclipse.org/downloads/" target="_blank">visit the official Eclipse website.</a>
				To find more information about this new version, watch Webinars, listen to podcasts or just follow the evolution of Eclipse Europa go to the 
                <a href="http://www.eclipse.org/europa/" target="_blank">Eclipse Europa website.</a>
                .
            </p>
            <p>
				Up to you now to try it out and make your own mind up about Eclipse Europa. We have difficulty thinking of things Eclipse is lacking but after Europa a new version 3.4 is in development named Ganymede. Various versions of 3.4 are already available since the 9th of August, you can find them on
                <a href="http://download.eclipse.org/eclipse/downloads/" target="_blank">the Eclipse web site</a>
                in the "3.4 Stream Stable Builds" section.
            </p>
        </div>
    </body>
</html>

